package com.foxire.innerclass;

public class InnerClassDemo1 {
    public static void main(String[] args) {
        // 目标：搞清楚成员内部类的语法
        // 成员内部类创建对象格式
        // 外部类名.内部类名 对象名 = new 外部类名().new 内部类名(参数列表);
        Outer.Inner oi = new Outer().new Inner();
        oi.show();
        // 成员内部类访问外部类成员的特点（拓展）
        // 1. 成员内部类中可以直接访问外部类中的成员变量，也可以直接访问外部类的实例成员
        // 2. 成员内部类的实例方法中，可以直接拿到当前寄生的外部类对象：外部类名.this
        People.Heart h = new People().new Heart();
        h.beat();
    }
}

class People {
    private int hearBeat = 100;

    public class Heart {
        private int hearBeat = 90;
        public void beat() {
            int hearBeat = 80;
            System.out.println(hearBeat);// 80
            System.out.println(this.hearBeat);// 90
            System.out.println(People.this.hearBeat);// 100
        }
    }
}
